package 二叉树层序遍历.二叉树的最大深度;

public class Solution2 {
    public int maxDepth(TreeNode root) {
        // 递归算法的三步曲
        // ① 递归算法的参数和返回值  --> 参数：TreeNode 返回值：int
        // ② 递归的终止条件 --> root == null
        // ③ 单层递归的逻辑 --> 当前树的高度为左右子树最大高度+1
        //                --> 那么只需要思考最下面一层的逻辑，需要寻找到一个节点的左右子树都为null
        if (root == null)
            return 0;
        int leftLevel = maxDepth(root.left);
        int rightLevel = maxDepth(root.right);
        return leftLevel > rightLevel ? leftLevel+1 : rightLevel+1;
    }
}
